//
//  LLUIImageView.h
//  PandaMakeUp
//
//  Created by dl on 15/10/21.
//  Copyright © 2015年 lrlz. All rights reserved.
//

#import <UIKit/UIKit.h>

@class LLUIImageView;

/**
 *  配置的初始化方法
 */
extern void LLImageCacheConfig(void);

/**
 *  清空内存缓存
 */
extern void LLImageCacheClearMemory(void);

/**
 *  为了节省流量，获取缩略后的图片地址, 缩略测试根据制定的size生成
 *
 *  @param originUrl 原始地址
 *  @param size      制定的size
 *
 *  @return 缩略后的图片地址
 */
extern NSString *LLImageUrlStrScaledWithSize(NSString *originUrl, int size);

/**
 *  清空图片缓存
 *
 *  @param completion 清除完成的回调
 */
extern void LLImageCacheClearWithCompletion(dispatch_block_t completion);

/**
 *  预加载图片
 *
 *  @param urls 图片url数组
 */
extern void LLImageCachePreloadImages(NSArray *urls);

/**
 *  从网络或缓存中获取图片
 *
 *  @param url             图片url
 *  @param void^completion 获取的图片
 */
extern void LLImageLoadImage(NSURL *url, void(^completion)(UIImage *image));


typedef void (^ClickEventBlock)();

/**
 *  网络图片imageView的类
 */
@interface LLUIImageView : UIImageView {
    NSURL *_imageURL;
    UIImage *_placeholder;
}

/** 图片相关联的data */
@property(nonatomic, strong) id data;

/** imageURL */
@property(nonatomic, strong, readonly) NSURL *imageURL;
/** placeholder */
@property(nonatomic, strong) UIImage *placeholderImage;
/** ImageOptions,  */
@property(nonatomic, assign) NSUInteger cacheOptions;
/** Loading框 */
@property(nonatomic, strong) UIActivityIndicatorView *indicatorView;
/** 是否展示加载中 */
@property(nonatomic, assign) BOOL shouldShowIndicator;
/** 点击事件 */
@property(nonatomic, copy) ClickEventBlock clickBlock;
// 底部增加Gradient layer
@property(nonatomic, assign) BOOL showBottomGradientLayer;
// 底部Gradient layer距离最底部的距离
@property(nonatomic, assign) CGFloat bottomGradientLayerOffset;

- (void)setImageUrlStr:(NSString *)url;

- (void)setImageUrlStr:(NSString *)url size:(int)size;

- (void)setImageUrlStr:(NSString *)url touchBlock:(ClickEventBlock)block;

- (void)setImageUrlStr:(NSString *)url size:(int)size touchBlock:(ClickEventBlock)block;

@end
